Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра прикладної математики
та фундаментальних наук
Звіт
до лабораторної роботи №2
«РОБОТА З ЗАПИТАМИ В СУБД ACCESS»
Завдання:
задано предметну область:
Інформаційна система призначена для обліку товарів в невеликому магазині.
Кожен товар характеризується кодом, категорією, назвою, одиницями виміру, терміном зберігання, ціною закупки та ціною продажу. Товар приходить в магазин від постачальників, продається покупцям та може бути списаний на витрати. Інформаційна система повинна зберігати дані про всі такі операції з вказанням номеру документу, дати, постачальника чи отримувача товару, кількостей кожного товару що бере участь в операції. Система повинна відслідковувати також оплати постачальникам за поставлений товар та надходження оплат від покупців за проданий товар. Система не дозволяє продаж товару покупцям, борг яких перевищує 1000 гр.
В системі потрібно зберігати дані про постачальників та покупців : код, назву, адресу, категорію, процент знижки на ціни.
Система повинна забороняти продаж товару, якщо його немає в наявності.
Система повинна видавати звіти :
Список товарів певної категорії (параметр) з вказанням назви, обох цін та наявної кількості.
Список обігу товарів за певний період часу з вказанням назви, суми товару наявного на початок періоду, суми приходу толвару за період, суми продаж та списання товару за період, суми товару, наявного на кінець періоду. Підбивати підсумки по категоріях.
Список постачальників з вказанням всіх даних документів про прихід товару від них.
Виконання:
Вибірка даних:
Вивести список товарів певної категорії (параметр) з вказанням назви, обох цін та наявної кількості:
SELECT назва, ціна_закупки, ціна_продажу, кількість_товару
FROM товар
INNER JOIN категорія_товарів ON товар.ід_категорії_товару=категорія_товарів.ід_категорії
WHERE категорія_товарів.назва_категорії = ввести_категорію;
Наприклад:
Вводжу категорію товару «Взуття», вивід:
Список постачальників з вказанням всіх даних документів про прихід товару від них:
SELECT по.назва, по.адреса, доп.ід_документа_оплати, доп.дата, ооп.кількість_товару, товар.назва
FROM постачальник AS по, документи_оплати_постачальникам AS доп, операція_оплати_постачальникам AS ооп, товар
WHERE по.ід_постачальника=доп.ід_постачальника AND доп.ід_документа_оплати=ооп.ід_документа_оплати AND ооп.ід_товару=товар.ід_товару;
Наприклад:
Вивід:
Вивести дані про прихід товару за вказаний період (параметр):
SELECT товар.назва, товар.ціна_закупки, ооп.кількість_товару
FROM товар, операція_оплати_постачальникам AS ооп, документи_оплати_постачальникам AS доп
WHERE ооп.ід_товару=товар.ід_товару AND доп.ід_документа_оплати=ооп.ід_документа_оплати And доп.дата>=dateValue([початок періоду]) AND доп.дата<=dateValue([кінець періоду]);
Наприклад:
Вводжу: початкову дату «11.09.2007» та кінцеву дату «20.09.2007» , вивід:
Вивести дані по продажі та списанню товарів за вказаний період (параметр):
Запит збережений із назвою ‘суми продаж та списання товару за період’
SELECT дон.дата, товар.назва, он.кількість_товару, товар.ціна_продажу, 'Продано' AS Операція
FROM товар, операція_надходження AS он, документи_операції_надходження AS дон
WHERE товар.ід_товару=он.ід_товару AND он.ід_документа_надходження=дон.ід_документа_надходження AND дон.дата>=dateValue([введіть початок періоду]) AND дон.дата<=dateValue([введіть кінець періоду])
UNION ALL
SELECT дос.дата, товар.назва, ост.кількість_товару, товар.ціна_продажу, 'Списано' AS Операція
FROM товар, операція_списання_товару AS ост, документи_операції_списання AS дос
WHERE товар.ід_товару=ост.ід_товару AND ост.ід_документу_списання=дос.ід_документу_списання AND дос.дата>=dateValue([введіть початок періоду]) AND дос.дата<=dateValue([введіть кінець періоду])
ORDER BY 1;
Наприклад:
Вводжу: початкову дату «11.09.2007» та кінцеву дату «20.09.20...